#pragma once
#include <iostream>
#include <cassert>
using namespace std;
class Date
{
	friend ostream& operator<<(ostream& out, const Date& d);
	friend istream& operator>>(istream& in, Date& d);
public:
	Date(int year = 0, int month = 0, int day = 0);
	Date(const Date& x);
	void Print() const;
	bool operator< (const Date& d2) const;
	bool operator== (const Date& d2) const;
	bool operator!= (const Date& d2) const;
	bool operator<= (const Date& d2) const;
	bool operator>= (const Date& d2) const;
	bool operator> (const Date& d2) const;
	Date operator+(int day) const;
	Date& operator+=(int day);
	Date& operator-=(int day);
	Date& operator++();
	Date operator++(int);
	Date& operator--();
	Date operator--(int);
	Date operator-(int day);
	int operator-(const Date& d2) const;
private:
	int _year;
	int _month;
	int _day;
};



